System and method for block scaling data to fit a screen on a mobile device

ABSTRACT

The present invention is directed to a system and method for block scaling data in order to fit the data to a screen on a mobile device such that “horizontal scrolling” is minimized. The method of block scaling recursively fits blocks within other blocks within further blocks to dynamically optimize the content for a smaller screen. The block scaling is based upon a minimum width for each block depending on the type of data included in each block. The blocks are scaled to the available screen size unless the minimum width for any given block is larger than the screen of the mobile device. When the minimum width is wider than the screen, the data defaults to the minimum width in order to preserve the integrity of the data.

RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application No.60/420,477 filed on Oct. 21, 2002, which is hereby claimed under 35U.S.C. §119(e).

FIELD OF THE INVENTION

The present invention relates generally to mobile computing, and moreparticularly to block scaling data to fit a screen on a mobile device.

BACKGROUND OF THE INVENTION

Small, mobile computing devices such as personal desktop assistants,including hand-held and pocket-sized computers, tablet personalcomputers and the like, are becoming important and popular user tools.In general, they have become small enough to be extremely convenient,while consuming less battery power, and at the same time have becomecapable of running more powerful applications. Although the computingcircuitry of such devices continues to shrink in size, the areaavailable for displaying data to a user shrinks as well. The usabilityof such data may be problematic due to the relatively small size of thedisplay.

For example, data is often displayed in the form of a “web page” thatincludes text, tables, images, and other varieties of displayinformation. The display information included on a web page is optimizedto be displayed on a screen having a specified minimum size. When thesize of the screen available is smaller than the specified minimum size,such as on a mobile device, the mobile device may be unable to show thedisplay information in a usable format.

SUMMARY OF THE INVENTION

The present invention is directed to a system and method for blockscaling data in order to fit the data to a screen on a mobile devicesuch that “horizontal scrolling” is minimized. Horizontal scrollingrefers to a requirement on a user to “scroll” the viewing window of thedata in a horizontal direction in order to completely view the dataprovided. Horizontal scrolling is contrasted with “vertical scrolling.”Vertical scrolling refers to a requirement on a user to “scroll” theviewing window of the data in a vertical direction. Vertical scrollingis generally accepted as a preferred method of scrolling over horizontalscrolling.

The present invention of block scaling recursively fits blocks withinother blocks within further blocks to dynamically optimize the contentfor a smaller screen. Blocks may be defined according to the rules of aparticular page, the elements included within that page, and the screensize available for a particular mobile device. Depending on the rules ofa particular page, the elements are grouped into larger elements, orblocks. In one example, a page of data corresponds to a block. The blockcorresponding to the page is considered the top-level block and theparent block of any sub-blocks included in the page. For example, aparagraph of text on a page may be grouped as a block of data. In thisexample, the page is the parent block and the paragraph is a sub-blockof the parent block. Further, sub-blocks may also be parent blocks forother sub-blocks of data (e.g., the paragraph includes a table). Eachparent block and sub-blocks may be or may include paragraphs, images,form fields, tables, and the like.

According to the present invention, a width associated with each blockand sub-block is scalable to a minimum width that depends on the type ofdata included in each block. The minimum width of each block is affectedby the elements within each block. In one embodiment, the minimum widthof a block corresponds to the width of the longest unbreakable word, thewidest image, the widest form field, or the like.

When each block is scaled, the elements within each block are allowed toflow such that the block is held to its minimum width and horizontalscaling is reduced. If the minimum width of a sub-block is larger thanits corresponding parent block, the width of the parent block isincreased to match the minimum width of the sub-block. The data of thesub-block is preserved by not reducing the sub-block past its minimumwidth. The process of matching a parent's width with the minimum widthof a sub-block is recursive. Each successive parent block is increasedto match any increases in the width of any sub-blocks.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an exemplary computing device that may be used in oneexemplary embodiment of the present invention.

FIG. 2 illustrates an exemplary mobile device that may be used in oneexemplary embodiment of the present invention.

FIG. 3 is a logical flow diagram of an exemplary block scaling processaccording to the present invention.

FIG. 4 is a logical flow diagram of an exemplary block grouping processaccording to the present invention.

FIG. 5 is a logical flow diagram of an exemplary block widthdetermination process according to the present invention.

DESCRIPTION OF THE PREFERRED EMBODIMENT

Briefly stated, the present invention is directed at scaling dataprovided to a mobile device to fit a screen associated with the mobiledevice while minimizing horizontal scrolling. These and other aspects ofthe invention will become apparent to those skilled in the art afterreading the following detailed description.

Illustrative Operating Environment

With reference to FIG. 1, one exemplary system for implementing theinvention includes a computing device that may be configured to operateas a mobile device, such as computing device 100. In a very basicconfiguration, computing device 100 typically includes at least oneprocessing unit 102 and system memory 104. Depending on the exactconfiguration and type of computing device, system memory 104 may bevolatile (such as RAM), non-volatile (such as ROM, flash memory, etc.)or some combination of the two. System memory 104 typically includes anoperating system 105, one or more program modules 106, and may includeprogram data 107. This basic configuration is illustrated in FIG. 1 bythose components within dashed line 108.

Computing device 100 may have additional features or functionality. Forexample, computing device 100 may also include additional data storagedevices (removable and/or non-removable) such as, for example, magneticdisks, optical disks, or tape. Such additional storage is illustrated inFIG. 1 by removable storage 109 and non-removable storage 110. Computerstorage media may include volatile and nonvolatile, removable andnon-removable media implemented in any method or technology for storageof information, such as computer readable instructions, data structures,program modules, or other data. System memory 104, removable storage 109and non-removable storage 110 are all examples of computer storagemedia. Computer storage media includes, but is not limited to, RAM, ROM,EEPROM, flash memory or other memory technology, CD-ROM, digitalversatile disks (DVD) or other optical storage, magnetic cassettes,magnetic tape, magnetic disk storage or other magnetic storage devices,or any other medium which can be used to store the desired informationand which can be accessed by computing device 100. Any such computerstorage media may be part of device 100. Computing device 100 may alsohave input device(s) 112 such as keyboard, mouse, pen, voice inputdevice, touch input device, etc. Output device(s) 114 such as a display,speakers, printer, etc. may also be included. These devices are wellknown in the art and need not be discussed at length here.

Computing device 100 may also contain communication connections 116 thatallow the device to communicate with other computing devices 118, suchas over a network. Communication connections 116 are one example ofcommunication media. Communication media may typically be embodied bycomputer readable instructions, data structures, program modules, orother data in a modulated data signal, such as a carrier wave or othertransport mechanism, and includes any information delivery media. Theterm “modulated data signal” means a signal that has one or more of itscharacteristics set or changed in such a manner as to encode informationin the signal. By way of example, and not limitation, communicationmedia includes wired media such as a wired network or direct-wiredconnection, and wireless media such as acoustic, RF, infrared and otherwireless media. The term computer readable media as used herein includesboth storage media and communication media.

With reference to FIG. 2, one exemplary system for implementing theinvention includes a computing device configured as a mobile device,such as mobile device 200. The mobile device 200 has a processor 260, amemory 262, a display 228, and a keypad 232. The memory 262 generallyincludes both volatile memory (e.g., RAM) and non-volatile memory (e.g.,ROM, Flash Memory, or the like). The mobile device 200 includes anoperating system 264, such as the Windows CE operating system fromMicrosoft Corporation or other operating system, which is resident inthe memory 262 and executes on the processor 260. The keypad 232 may bea push button numeric dialing pad (such as on a typical telephone), amulti-key keyboard (such as a conventional keyboard). The display 228may be a liquid crystal display, or any other type of display commonlyused in mobile devices. The display 228 may be touch-sensitive, andwould then also act as an input device. The peripheral device port 230may be of the type to accept additional memory cards, game cards, modemcards, or other peripheral devices.

One or more application programs 266 are loaded into memory 262 and runon the operating system 264. Examples of application programs includephone dialer programs, installation wizard programs, email programs,scheduling programs, PIM (personal information management) programs,word processing programs, spreadsheet programs, Internet browserprograms, data scaling programs, and so forth. The mobile computingdevice 200 also includes non-volatile storage 268 within the memory 262.The non-volatile storage 268 may be used to store persistent informationwhich should not be lost if the mobile computing device 200 is powereddown. The applications 266 may use and store information in the storage268, such as e-mail or other messages used by an e-mail application,contact information used by a PIM, appointment information used by ascheduling program, documents used by a word processing program, devicedriver programs, and the like.

The mobile computing device 200 has a power supply 270, which may beimplemented as one or more batteries. The power supply 270 might furtherinclude an external power source, such as an AC adapter or a powereddocking cradle, that supplements or recharges the batteries.

The mobile computing device 200 is also shown with two types of externalnotification mechanisms: an LED 240 and an audio interface 274. Thesedevices may be directly coupled to the power supply 270 so that whenactivated, they remain on for a duration dictated by the notificationmechanism even though the processor 260 and other components might shutdown to conserve battery power. The LED 240 may be programmed to remainon indefinitely until the user takes action to indicate the powered-onstatus of the device. The audio interface 274 is used to provide audiblesignals to and receive audible signals from the user. For example, theaudio interface 274 may be coupled to a speaker for providing audibleoutput and to a microphone for receiving audible input, such as tofacilitate a telephone conversation.

The mobile computing device 200 also includes a radio interface layer272 that performs the function of transmitting and receiving radiofrequency communications. The radio interface layer 272 facilitateswireless connectivity between the mobile computing device 200 and theoutside world, via a communications carrier or service provider.Transmissions to and from the radio interface layer 272 are conductedunder control of the operating system 264. In other words,communications received by the radio interface layer 272 may bedisseminated to application programs 266 via the operating system 264,and vice versa.

Illustrative Process for Block Scaling Data to Fit a Mobile DeviceScreen

FIG. 3 is a logical flow diagram of an exemplary block scaling processaccording to the present invention. The process 300 begins at startblock 302 where the mobile device is powered on and has received a pageor other data to display on the mobile device. In one embodiment, thepage is a web page that is written according to a standard such as HTML,XHTML, CSS, or the like. The process 300 continues at block 304.

At block 304, the elements of the page are grouped in blocks. Forexample, a paragraph may be considered a block of text elements. Animage on a page may be considered another block. Since pages often haveelements within other elements, it is also possible to have sub-blockswithin larger parent blocks. In one embodiment, text is not a block.Accordingly, the words within the paragraph flow such that the text fitswithin the paragraph block when the paragraph block is scaled. With agoal of reducing horizontal scrolling rather than vertical scrolling,the height of a block is allowed to grow if necessary to make the widthof the block fit within its parent. The top-level parent block uses thescreen width for its limit. This way, if sub-blocks can be scaledappropriately, horizontal scrolling is avoided. In another embodiment,standards associated with a page define which elements are consideredblocks. For example, web pages are based on standards such as HTML,XHTML, CSS, and the like, that may be used to define which elements areconsidered blocks. Those elements not considered blocks can flow andmove around within a block when scaling to fit within the block's width.The non-block elements also have certain limits to the amount they areable to be scaled or move in order to meet the block's needs. Theselimits cause the block to reach a minimum width. An illustrative processfor grouping the elements into blocks is further described in thediscussion of FIG. 4 below. Once the page of data is grouped intoblocks, processing proceeds to block 306.

At block 306, the width of each block of the page of data is discovered.In one embodiment, the top-level block (e.g., the block containing allother sub-blocks of the page) has a default width that is set tocorrespond to the width of the screen on the mobile device as describedin greater detail in FIG. 5. Accordingly, the width of the page of datamatches the width of the screen if all the blocks have a minimum widththat is less than the width of the screen. Horizontal scrolling iseliminated when the width of the blocks is less than the width of thescreen. An illustrative process for discovering the width of the blocksfor the page of data is described in more detail in the discussion ofFIG. 5 below. Processing continues at block 308.

At block 308, each block of the page of data is compared to itsimmediate parent block (i.e., the parent block directly higher). Theblock may have a width that is greater than its parent block asdescribed in the discussion of FIG. 5. As the blocks are compared totheir immediate parents, processing proceed to decision block 310.

At decision block 310, a determination is made whether the minimum widthof the block is greater than the width of its parent block. If the widthof the block is not greater than the width of its parent, processingadvances to decision block 314. However, if the width of the block isgreater than the width of its parent, processing moves to block 312.

At block 312, the width of the immediate parent is increased tocorrespond to the minimum width of the block. The process for increasingeach parent block is recursive, with each higher level parent block alsobeing increased. If each succeeding parent block is required to increaseits width, ultimately the top-level block also increases its width toaccommodate. Increasing the width of the top-level block may result in aminimum level of horizontal scrolling to completely view the page ofdata and maintain the data usability. Processing proceeds to decisionblock 314.

At decision block 314, a determination is made whether the width of eachblock of the data page has been compared to the width of its immediateparent block. In one embodiment, if the width of any block is changedaccording to the process of block 312, then the determination at block314 is that not all blocks have been compared to their immediate parent.If not all blocks have been compared to their immediate parent, thenprocessing returns to block 308 where each block is compared to itsimmediate parent. Alternatively, if all blocks have been compared totheir immediate parent without any further changes in width for a block,then processing moves to block 316.

At block 316, the page of data is fitted to or displayed on the screenof the mobile device according to the width of the top-level block. Eachblock lower in the hierarchy is also has a width corresponding to thetop-level block. Accordingly, usability of the mobile device for viewingthe page of data is increased by optimizing the data presented on thescreen and minimizing horizontal scrolling. Processing then proceeds toblock 318, where the process ends.

In a further embodiment, non-block content (e.g., text) contained withina block is limited to a width no greater than the screen width of themobile device. The non-block content width is limited even if theminimum width of the block is greater than the width of the screen. Forexample, a table may be included in the page of data that is grouped asa block with the cells of the table as sub-blocks. The minimum width forone of the cell sub-blocks may be greater than the width of the screen,increasing the minimum width of the block. Despite that the blockcorresponding to the table is greater in width than the screen, textwithin the block is limited to a width corresponding to the screenwidth. Accordingly, horizontal scrolling may be avoided for long textparagraphs within a block even when the block is wider than the width ofthe screen.

FIG. 4 is a logical flow diagram of an exemplary block grouping processaccording to the present invention. The process 400 enters at block 402when process 300 shown in FIG. 3 enters block 304. The process 400continues at block 404.

At block 404, the page is evaluated according to a standard such as theHTML standard previously mentioned. HTML defines the structure andlayout of a Web document by using a variety of tags and attributes. Thetags can correlate to “block level” data or data that is not blocklevel. For example, HTML includes a set of tags that designates thestart and end of a paragraph. The tag for a paragraph is considered a“block level” tag that designates a set of data that may be grouped as ablock. The data between these tags can therefore be grouped as a blockfor scaling. As the page of data is evaluated according to the standardin which it was written, processing moves to decision block 406.

At decision block 406, a determination is made for whether a tagevaluated in the page of data is a “block level” tag. If the tagcorresponds to a “block level” tag, meaning that the data framed by thetag and its corresponding end tag may be organized into a block,processing moves to block 408.

At block 408, the data included within the “block level” set of tags aregrouped as a block. Block level tags may include tags that correspond toparagraphs, images, tables, and the like. Once the data corresponding tothe block level set of tags is grouped as a block, processing moves todecision block 410.

Alternatively, at decision block 406, if the tag and its correspondingend tag are not block level tags, the set of tags may be associated withtext or other elements not considered block level data. When adetermination is made that the tags do not correspond to block leveldata, processing advances directly to decision block 410.

At decision block 410, a determination is made whether all tags withinthe page have been evaluated to group block level data into blocks. Thetags within an HTML page are nested, such that grouping data accordingto its corresponding tags may generate blocks within other blocks. Asdescribed previously, each block may be a sub-block of an associatedparent block. The parent block at the highest level, or the top-levelblock, is the block corresponding to the page itself. If all tags of thepage of data have not yet been evaluated, processing returns to block406, where evaluation continues. Alternatively, when all tags have beenevaluated and the corresponding data is grouped into blocks, processingcontinues to block 412. At block 412, processing returns to block 306 ofprocess 300 shown in FIG. 3.

In other embodiments, process 400 may be evaluated and grouped accordingto other elements than tags, or according to tags of a differentstandard than HTML.

FIG. 5 is a logical flow diagram of an exemplary block widthdetermination process according to the present invention. The process500 enters at block 502 when process 300 shown in FIG. 3 enters block306. The process 500 continues at block 504.

At block 504, the width of the highest level block, or top-level blockthat corresponds to the page of data is set to be scaled to a width thatcorresponds to the width of the screen of a mobile device. When the pageof data is displayed on the mobile device, the width of the pagetherefore matches the width of the screen. Matching the page width tothe width of the screen avoids horizontal scrolling if the sub-blocksare scaled appropriately. Processing continues at decision block 506.

At decision block 506, each block is examined and a determination ismade whether a block includes a “resizing element.” A “resizing element”as used herein refers to an element that results in a block that iswider than the screen size when the block is scaled to preserve theintegrity of the data. Each block has a “minimum width” that depends onthe type of data included in the block. For example, a single word thatcannot be broken at a logical place is one of the elements that maycause a block's minimum width to be different from the screen width.Other elements include: a single image that cannot be scaled any smallerwithout sacrificing usability of the image, a single form field using astandard shell control that cannot be made any smaller, a table thatrequires columns of a minimum width, and the like. If one of theseelements results in the width of a block being wider than the screenwidth, the element is considered a “resizing element.” If a blockincludes a resizing element, processing moves to block 508.

At block 508, the width of the block is set to scale according to thewidth of the resizing element. Scaling the block according to the widthof the resizing element preserves the integrity of the data includedwithin the block while minimizing horizontal scrolling of the page whenview on the mobile device. When the width of the block is set,processing advances to decision block 512.

Alternatively, if the block being examined does not include a resizingelement, processing moves to block 510 where the width of the block isset to be scaled according to the width of the screen. Scaling the blockto match the width of the screen maximizes the size of each block toincrease usability of the data included on the page, while minimizinghorizontal scrolling. When the width of the block is set, processingadvances to decision block 512.

At decision block 512, a determination is made whether all block widthshave been discovered. If the widths for all the blocks, including allsub-blocks, has not yet been determined, processing returns to block506, where examination of the blocks continues. Alternatively, when allblock width have been determined, processing continues to block 514. Atblock 514, processing returns to block 308 of process 300 shown in FIG.3.

The above specification, examples and data provide a completedescription of the method and use of the invention. Since manyembodiments of the invention can be made without departing from thespirit and scope of the invention, the invention resides in the claimshereinafter appended.

1. A computer-implemented method for block scaling data to fit a screenon a mobile device, the method comprising: grouping elements of the datainto a first block and a second block, wherein the second block is asub-block of the first block; determining a width for the first blockand a width for the second block; comparing the width of the first blockto the width of the second block; increasing the width of the firstblock when the width of the second block is greater than the width ofthe first block; and scaling the data associated with the first blockand the second black according to their respective widths to displaydata on the screen such that horizontal scrolling is minimized.
 2. Thecomputer-implemented method of claim 1, wherein the grouping furthercomprises evaluating the page of data according to a standard thatdefine the data of the page that is block level data.
 3. Thecomputer-implemented method of claim 2, wherein the standard correspondsto one of the group comprising HTML, XHTML, and CSS.
 4. Thecomputer-implemented method of claim 1, wherein the first block is thetop-level block for the page of data.
 5. The computer-implemented methodof claim 1, wherein the width of the second block corresponds to one ofa group comprising a longest unbreakable word associated with the secondblock, a widest image associated with the second block and a widest formfield associated with the second block.
 6. The computer-implementedmethod of claim 1, wherein the width of the first block corresponds toone of a group comprising a longest unbreakable word associated with thefirst block, a widest image associated with the first block, a widestform field associated wit the first block, and the width associated withthe second block.
 7. The computer-implemented method of claim 1, furthercomprising determining whether the second block includes a resizingclement, wherein a width associated with the resizing element is widerthan the width of the screen on the mobile device.
 8. Thecomputer-implemented method of claim 7, further comprising increasingthe width associated with the second block to match the width of theresizing element when the resizing element is present in the secondblock.
 9. The computer-implemented method of claim 7, further comprisingsetting the width of a first block to match the width corresponding tothe screen on the mobile device when a resizing element is not presentin the second block.
 10. A mobile device, comprising: a processor; adisplay; a memory into which a plurality of computer-executableinstructions are loaded, the computer-executable instructions causingthe processor to perform a method comprising: grouping elements of apage of data into a first block and a second block; comparing a widthassociated with the first block to a width associated with the secondblock; increasing the width of the first block when the width of thesecond block is greater than the width of the first block; and scalingthe data associated with the first block and the second block accordingto their respective widths to display data on the screen such thathorizontal scrolling is minimized.
 11. The mobile device of claim 10,wherein the computer-executable instructions further cause the processorto determine a minimum width for the second block, wherein the minimumwidth corresponds to one of a group comprising a longest unbreakableword associated with the second block, a widest image associated withthe second block, and a widest form field associated with the secondblock.
 12. The mobile device of claim 10, wherein thecomputer-executable instructions further cause the processor todetermine whether the second block includes a resizing element, whereina width associated with the resizing element is wider than the width ofthe screen on the mobile device.
 13. The mobile device of claim 12,wherein the computer-executable instructions further cause the processorto increase the width associated with the second block to match thewidth of the resizing element when the resizing element is present inthe second block.
 14. The mobile device of claim 12, wherein thecomputer-executable instructions further cause the processor to set thewidth of a first block to match the width corresponding to the screen onthe mobile device when a resizing element is not present in the secondblock.
 15. A computer-readable medium encoded with computer-executableinstructions causing a computing device to perform a method comprising:grouping elements of a page of data into a first block and a secondblock; setting a width of the first block to match a width correspondingto a screen on the mobile device; comparing the width associated withthe first block to a width associated with the second block; increasingthe width of the first block when the width of the second block isgreater than the width of the first block; and scaling the elementsassociated with the first block and the second block according to theirrespective widths to display the page of data on the screen such thathorizontal scrolling is minimized.
 16. The computer-readable medium ofclaim 15, wherein the second block is a sub-block of the first block,and the first block is a parent block of the second block.
 17. Thecomputer-readable medium of claim 15, wherein the first block is thetop-level block for the page of data.
 18. The computer readable mediumof claim 15, further comprising determining a minimum width for thesecond block, wherein the minimum width corresponds to one of a groupcomprising a longest unbreakable word associated with the second block,a widest image associated with the second block, and a widest form fieldassociated with the second block.
 19. The computer readable medium ofclaim 15, further comprising determining whether the second blockincludes a resizing element, wherein a width associated with theresizing element is wider than the width of the screen on the mobiledevice.
 20. The computer readable medium of claim 19, further comprisingincreasing the width associated with the second block to match the widthof the resizing element when the resizing element is present in thesecond block.
 21. The computer readable medium of claim 19, furthercomprising setting the width of a first block to match the widthcorresponding to the screen on the mobile device when a resizing elementis not present in the second block.
 22. The computer readable medium ofclaim 15, further comprising setting a width of non-black elementswithin the first block to correspond to the width of the screen when thewidth of the first block is greater than the width of the screen.